package com.jdbc.utils;

import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

/**
 * @author wzm
 * @create 2023-02-21 16:18
 */
//打开连接和关闭资源的工具类
public class JDBCUtil {

    //将数据源定义为全局变量
   private static DataSource  dataSource = null;



    //静态代码块 类只要加载就会执行 不需要每次都获取配置文件然后加载 获取连接
    static {
        try {
            Properties properties = new Properties();
            properties.load(
                    JDBCUtil.class.getClassLoader().getResourceAsStream("druid.properties")
            );
            dataSource = DruidDataSourceFactory.createDataSource(properties);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }



    /**
     * 打开连接的方法
     * @return 获取的连接对象
     */
    public static Connection getConn(){
        try {
            return  dataSource.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return  null; //失败返回null
    }

    /**
     * 关闭资源的方法
     * @param conn 要关闭的连接
     */
    public static void closes(Connection conn, PreparedStatement pst, ResultSet rs){
        //后开的先关
        try {

            if (rs != null) {
                rs.close();
            }

            if (pst != null) {
                pst.close();
            }

            if (conn != null) {
                conn.close();
            }


        } catch (SQLException e) {
            e.printStackTrace();
        }

    }
}


//标记